home *** CD-ROM | disk | FTP | other *** search
/ Sky at Night 2007 June / SAN CD 6-2007 CD-ROM 25.iso / pc / Software / AstroGrav_Win / Java / jre1.6.0 / lib / rt.jar / java / util / AbstractCollection.class (.txt) next >
Encoding:
Java Class File  |  2006-11-29  |  2.8 KB  |  201 lines

  1. package java.util;
  2.  
  3. import java.lang.reflect.Array;
  4.  
  5. public abstract class AbstractCollection<E> implements Collection<E> {
  6.    protected AbstractCollection() {
  7.    }
  8.  
  9.    public abstract Iterator<E> iterator();
  10.  
  11.    public abstract int size();
  12.  
  13.    public boolean isEmpty() {
  14.       return this.size() == 0;
  15.    }
  16.  
  17.    public boolean contains(Object var1) {
  18.       Iterator var2 = this.iterator();
  19.       if (var1 == null) {
  20.          while(var2.hasNext()) {
  21.             if (var2.next() == null) {
  22.                return true;
  23.             }
  24.          }
  25.       } else {
  26.          while(var2.hasNext()) {
  27.             if (var1.equals(var2.next())) {
  28.                return true;
  29.             }
  30.          }
  31.       }
  32.  
  33.       return false;
  34.    }
  35.  
  36.    public Object[] toArray() {
  37.       Object[] var1 = new Object[this.size()];
  38.       Iterator var2 = this.iterator();
  39.  
  40.       for(int var3 = 0; var3 < var1.length; ++var3) {
  41.          if (!var2.hasNext()) {
  42.             return Arrays.copyOf(var1, var3);
  43.          }
  44.  
  45.          var1[var3] = var2.next();
  46.       }
  47.  
  48.       return var2.hasNext() ? finishToArray(var1, var2) : var1;
  49.    }
  50.  
  51.    public <T> T[] toArray(T[] var1) {
  52.       int var2 = this.size();
  53.       Object[] var3 = var1.length >= var2 ? var1 : (Object[])((Object[])Array.newInstance(var1.getClass().getComponentType(), var2));
  54.       Iterator var4 = this.iterator();
  55.  
  56.       for(int var5 = 0; var5 < var3.length; ++var5) {
  57.          if (!var4.hasNext()) {
  58.             if (var1 != var3) {
  59.                return (T[])Arrays.copyOf(var3, var5);
  60.             }
  61.  
  62.             var3[var5] = null;
  63.             return (T[])var3;
  64.          }
  65.  
  66.          var3[var5] = var4.next();
  67.       }
  68.  
  69.       return (T[])(var4.hasNext() ? finishToArray(var3, var4) : var3);
  70.    }
  71.  
  72.    private static <T> T[] finishToArray(T[] var0, Iterator<?> var1) {
  73.       int var2;
  74.       for(var2 = var0.length; var1.hasNext(); var0[var2++] = var1.next()) {
  75.          int var3 = var0.length;
  76.          if (var2 == var3) {
  77.             int var4 = (var3 / 2 + 1) * 3;
  78.             if (var4 <= var3) {
  79.                if (var3 == Integer.MAX_VALUE) {
  80.                   throw new OutOfMemoryError("Required array size too large");
  81.                }
  82.  
  83.                var4 = Integer.MAX_VALUE;
  84.             }
  85.  
  86.             var0 = Arrays.copyOf(var0, var4);
  87.          }
  88.       }
  89.  
  90.       return (T[])(var2 == var0.length ? var0 : Arrays.copyOf(var0, var2));
  91.    }
  92.  
  93.    public boolean add(E var1) {
  94.       throw new UnsupportedOperationException();
  95.    }
  96.  
  97.    public boolean remove(Object var1) {
  98.       Iterator var2 = this.iterator();
  99.       if (var1 == null) {
  100.          while(var2.hasNext()) {
  101.             if (var2.next() == null) {
  102.                var2.remove();
  103.                return true;
  104.             }
  105.          }
  106.       } else {
  107.          while(var2.hasNext()) {
  108.             if (var1.equals(var2.next())) {
  109.                var2.remove();
  110.                return true;
  111.             }
  112.          }
  113.       }
  114.  
  115.       return false;
  116.    }
  117.  
  118.    public boolean containsAll(Collection<?> var1) {
  119.       Iterator var2 = var1.iterator();
  120.  
  121.       while(var2.hasNext()) {
  122.          if (!this.contains(var2.next())) {
  123.             return false;
  124.          }
  125.       }
  126.  
  127.       return true;
  128.    }
  129.  
  130.    public boolean addAll(Collection<? extends E> var1) {
  131.       boolean var2 = false;
  132.       Iterator var3 = var1.iterator();
  133.  
  134.       while(var3.hasNext()) {
  135.          if (this.add(var3.next())) {
  136.             var2 = true;
  137.          }
  138.       }
  139.  
  140.       return var2;
  141.    }
  142.  
  143.    public boolean removeAll(Collection<?> var1) {
  144.       boolean var2 = false;
  145.       Iterator var3 = this.iterator();
  146.  
  147.       while(var3.hasNext()) {
  148.          if (var1.contains(var3.next())) {
  149.             var3.remove();
  150.             var2 = true;
  151.          }
  152.       }
  153.  
  154.       return var2;
  155.    }
  156.  
  157.    public boolean retainAll(Collection<?> var1) {
  158.       boolean var2 = false;
  159.       Iterator var3 = this.iterator();
  160.  
  161.       while(var3.hasNext()) {
  162.          if (!var1.contains(var3.next())) {
  163.             var3.remove();
  164.             var2 = true;
  165.          }
  166.       }
  167.  
  168.       return var2;
  169.    }
  170.  
  171.    public void clear() {
  172.       Iterator var1 = this.iterator();
  173.  
  174.       while(var1.hasNext()) {
  175.          var1.next();
  176.          var1.remove();
  177.       }
  178.  
  179.    }
  180.  
  181.    public String toString() {
  182.       Iterator var1 = this.iterator();
  183.       if (!var1.hasNext()) {
  184.          return "[]";
  185.       } else {
  186.          StringBuilder var2 = new StringBuilder();
  187.          var2.append('[');
  188.  
  189.          while(true) {
  190.             Object var3 = var1.next();
  191.             var2.append(var3 == this ? "(this Collection)" : var3);
  192.             if (!var1.hasNext()) {
  193.                return var2.append(']').toString();
  194.             }
  195.  
  196.             var2.append(", ");
  197.          }
  198.       }
  199.    }
  200. }
  201.